﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace PhanMemQuanLyThuChi
{
    public partial class frmChi : Form
    {
        public frmChi()
        {
            InitializeComponent();
        }
        connect cn = new connect();
        int thaotac;
        private void Loaddata()
        {
            if (cobXem.Text == "Chi Trong Ngày")
            {
                gridChi.DataSource = cn.GetData("CHI_DS_NGAY");
            }
            else if (cobXem.Text == "Chi Trong Tháng")
            {
                gridChi.DataSource = cn.GetData("CHI_DS_THANG");
            }
            else if (cobXem.Text == "Tất Cả")
            {
                gridChi.DataSource = cn.GetData("CHI_DS_TATCA");
            }
            else
            {
                gridChi.DataSource = cn.GetData("CHI_DS_NGAY");
            }
            cobLoaiChi.DataSource = cn.GetData("LOAI_DS");
            cobLoaiChi.DisplayMember = "TenLoai";
            cobLoaiChi.ValueMember = "MaLoai";

            cobDVT.DataSource = cn.GetData("DVT_DS");
            cobDVT.DisplayMember = "TenDVT";
            cobDVT.ValueMember = "MaDVT";
            Bat_Tat_Button(true);
            Bat_Tat_TextBox(false);
        }

        private void frmChi_Load(object sender, EventArgs e)
        {
            Loaddata();
        }
        private void Bat_Tat_Button(bool val)
        {
            btnThem.Enabled = val;
            btnSua.Enabled = val;
            btnXoa.Enabled = val;
            btnLuu.Enabled = !val;
            gridChi.Enabled = val;            
        }
        private void Bat_Tat_TextBox(bool val)
        {
            txtSoLuong.Enabled = val;
            txtThanhTien.Enabled = val;
            dtNgayChi.Enabled = val;
            cobDVT.Enabled = val;
            cobLoaiChi.Enabled = val;
            txtDonGia.Enabled = val;
        }
        private void btnThem_Click(object sender, EventArgs e)
        {
            thaotac = 1;
            txtSoLuong.Text = "1";
            txtThanhTien.Text = "0";
            txtMaChi.Text = "";
            txtDonGia.Text = "";
            Bat_Tat_Button(false);
            Bat_Tat_TextBox(true);
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            thaotac = 2;
            Bat_Tat_Button(false);
            Bat_Tat_TextBox(true);
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (txtMaChi.Text == "")
            {
                MessageBox.Show("Bạn chưa chọn dữ liệu để xóa", "Thông Báo Hệ Thống", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if (MessageBox.Show("Bạn có chắc chắn muốn xóa không\nNếu chọn Yes mọi dữ liệu liên quan sẽ bị xóa vĩnh viễn!!!", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {
                    SqlCommand cmd = new SqlCommand("CHI_DELETE", cn.Connection());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("machi", SqlDbType.Int)).Value = txtMaChi.Text;
                    if(cmd.ExecuteNonQuery()==1)
                    {
                        Loaddata();
                    }
                    else
                    {
                    
                        MessageBox.Show("Xóa không thành công!", "Thông Báo Hệ Thống", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }

        private void gridChi_Click(object sender, EventArgs e)
        {
            txtMaChi.Text = DSChi.GetFocusedRowCellDisplayText("MaChi");
            txtSoLuong.Text = DSChi.GetFocusedRowCellDisplayText("SoLuong");
            txtThanhTien.Text = DSChi.GetFocusedRowCellDisplayText("ThanhTien");
            dtNgayChi.Text = DSChi.GetFocusedRowCellDisplayText("NgayChi");
            cobLoaiChi.Text = DSChi.GetFocusedRowCellDisplayText("TenLoai");
            cobDVT.Text = DSChi.GetFocusedRowCellDisplayText("TenDVT");
            txtDonGia.Text = DSChi.GetFocusedRowCellDisplayText("DonGia");
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (thaotac == 1)
            {
                if (txtThanhTien.Text == "")
                {
                    MessageBox.Show("Bạn chưa nhập tổng tiền!", "Thông Báo Hệ Thống", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    SqlCommand cmd = new SqlCommand("CHI_INSERT", cn.Connection());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("ngaychi", SqlDbType.DateTime)).Value = String.Format("{0:MM/dd/yyyy}", dtNgayChi.Text);
                    cmd.Parameters.Add(new SqlParameter("loaichi", SqlDbType.NVarChar)).Value = cobLoaiChi.SelectedValue;
                    cmd.Parameters.Add(new SqlParameter("soluong", SqlDbType.Int)).Value = txtSoLuong.Text;
                    cmd.Parameters.Add(new SqlParameter("dvt", SqlDbType.Int)).Value = cobDVT.SelectedValue;
                    cmd.Parameters.Add(new SqlParameter("thanhtien", SqlDbType.Float)).Value = txtThanhTien.Text;
                    cmd.Parameters.Add(new SqlParameter("dongia", SqlDbType.Float)).Value = txtDonGia.Text;
                    if (cmd.ExecuteNonQuery() == 1)
                    {
                        Loaddata();
                    }
                    else
                    {
                        MessageBox.Show("Thêm mới dữ liệu bị lỗi", "Thông Báo Hệ Thống", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                }
            }
            else
            {
                if (txtThanhTien.Text == "")
                {
                    if (txtThanhTien.Text == "")
                    {
                        MessageBox.Show("Bạn chưa nhập tổng tiền!", "Thông Báo Hệ Thống", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else if (txtMaChi.Text == "")
                {

                    MessageBox.Show("Bạn chưa chọn dữ liệu để cập nhật!", "Thông Báo Hệ Thống", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    SqlCommand cmd = new SqlCommand("CHI_UPDATE", cn.Connection());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("ngaychi", SqlDbType.DateTime)).Value = String.Format("{0:MM/dd/yyyy}", dtNgayChi.Text);
                    cmd.Parameters.Add(new SqlParameter("loaichi", SqlDbType.NVarChar)).Value = cobLoaiChi.SelectedValue;
                    cmd.Parameters.Add(new SqlParameter("soluong", SqlDbType.Int)).Value = txtSoLuong.Text;
                    cmd.Parameters.Add(new SqlParameter("dvt", SqlDbType.Int)).Value = cobDVT.SelectedValue;
                    cmd.Parameters.Add(new SqlParameter("thanhtien", SqlDbType.Float)).Value = txtThanhTien.Text;
                    cmd.Parameters.Add(new SqlParameter("machi", SqlDbType.Int)).Value = txtMaChi.Text;
                    cmd.Parameters.Add(new SqlParameter("dongia", SqlDbType.Float)).Value = txtDonGia.Text;
                    if (cmd.ExecuteNonQuery() == 1)
                    {
                        Loaddata();
                    }
                    else
                    {
                        MessageBox.Show("Cập nhật dữ liệu bị lỗi", "Thông Báo Hệ Thống", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }

        private void simpleButton2_Click(object sender, EventArgs e)
        {
            txtSoLuong.Text = "0";
            txtMaChi.Text = "";
            txtThanhTien.Text = "0";
            Loaddata();
            Bat_Tat_Button(true);
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            DSChi.ShowPrintPreview();
        }

        private void txtSoLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }
        private void txtThanhTien_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void btnThemNhanhLoai_Click(object sender, EventArgs e)
        {
            frmLoaiThuChi _frmLoai = new frmLoaiThuChi();
            _frmLoai.ShowDialog();
            Loaddata();
            //Bat_Tat_TextBox(true);
        }

        private void cobXem_SelectedIndexChanged(object sender, EventArgs e)
        {
            Loaddata();
        }

        private void simpleButton3_Click(object sender, EventArgs e)
        {
            frmDVT _frmDVT = new frmDVT();
            _frmDVT.ShowDialog();
            Loaddata();
        }

        private void txtDonGia_TextChanged(object sender, EventArgs e)
        {
            if (txtDonGia.Text == "")
            {
            }
            else
            {

                txtDonGia.Text = String.Format("{0:N0}", double.Parse(txtDonGia.Text));
                txtDonGia.SelectionStart = txtDonGia.Text.Length;
                //lbBangChu.Text = cn.DocSo(int.Parse(txtThanhTien.Text));
            }
            if (txtSoLuong.Text == "")
            {
                if (txtDonGia.Text == "")
                {
                    txtThanhTien.Text = "0";
                }
                else
                {
                    txtThanhTien.Text = "0";
                }
            }
            else
            {
                if (txtDonGia.Text == "")
                {
                    txtThanhTien.Text = "0";
                }
                else
                {
                    txtThanhTien.Text = (double.Parse(txtSoLuong.Text) * double.Parse(txtDonGia.Text)).ToString();
                }
            }
        }

        private void txtSoLuong_TextChanged(object sender, EventArgs e)
        {
            if (txtSoLuong.Text == "")
            {
                if (txtDonGia.Text == "")
                {
                    txtThanhTien.Text = "0";
                }
                else
                {
                    txtThanhTien.Text = "0";
                }
            }
            else
            {
                if (txtDonGia.Text == "")
                {
                    txtThanhTien.Text = "0";
                }
                else
                {
                    txtThanhTien.Text = (double.Parse(txtSoLuong.Text) * double.Parse(txtDonGia.Text)).ToString();
                }
            }
        }

        private void txtThanhTien_TextChanged(object sender, EventArgs e)
        {
            if (txtThanhTien.Text == "")
            {
            }
            else
            {

                txtThanhTien.Text = String.Format("{0:N0}", double.Parse(txtThanhTien.Text));
                txtThanhTien.SelectionStart = txtThanhTien.Text.Length;
                //lbBangChu.Text = cn.DocSo(int.Parse(txtThanhTien.Text));
            }
            lbBangChu.Text = cn.DocSo(double.Parse(txtThanhTien.Text));
        }
    }
}
